package errs

import "fmt"

type ErrInvalidArgument struct {
	service string
	message string
}

func NewErrInvalidArgument(service string, format string, args ...interface{}) *ErrInvalidArgument {
	return &ErrInvalidArgument{service: service, message: fmt.Sprintf(format, args...)}
}

func (e *ErrInvalidArgument) Error() string {
	return fmt.Sprintf("%s:%s", e.service, e.message)
}

type ErrorWithStatus struct {
	Status int
	Err    error
}

func NewStatusError(err error, status int) error {
	return &ErrorWithStatus{Err: err, Status: status}
}

func (e *ErrorWithStatus) Error() string {
	return e.Err.Error()
}
